Leaflet ist eine Open Source Bibliothek mit der interaktive Karten erstellt werden können. Über das R-Package leaflet lassen sich verschiedene GIS-Daten (z.B. Koordinaten, Layer) in interaktiven Karten darstellen. Im fogenden möchte ich einige nützliche Funktionalitäten darstellen.
Einfache Karte
Um eine einfache LeafletKarte zu erstellen, benötigen wir eine Hintergrundkarte und einen Kartenausschnitt, der dargestellt werden soll. Die Region kann entweder über eine Koordinate herangezoomt werden, oder durch hinzufügen eines Layers (z.B. aus einer Shape-Datei). Es gibt eine Vielzahl an möglichen Hintergrunddaten. Eine sehr umfangreiche Übersicht an Hintergrundkarten findet man z.B. hier: Kartenauswahl
library(leaflet)library(tidyverse)leaflet() %>%# Mitte auf München setzensetView(lng =11.572347, lat =48.138345, zoom =12) %>%# Hintergrundkarte festlegenaddProviderTiles(providers$OpenStreetMap.DE, group ="Open Street Map DE") %>%# Zusätzliche Hintergrundkarten als AlternativeaddProviderTiles(providers$Esri.WorldImagery, group ="ESRI World Imagery") %>%# Auswahlfeld für den Nutzer um sich für eine Hintergrundkarte zu entscheidenaddLayersControl(baseGroups =c("Open Street Map DE","ESRI World Imagery") )
Marker einfügen
Um Marker einzeichnet zu können, simulieren wir für Deutschland, Österreich und die Schweiz Koordinaten. Diese werden drei Kategorien zugeordnet, nach denen sie später eingefärbt werden können. Im Package rnaturalearth sind die Geometrien der Länder verfügbar.
Im Dataframe dach_df sind nun für die Länder Deutschand, Österreich und Schweiz die Koordinaten vorhanden.
leaflet(data = dach_df) %>%addTiles() %>%# Default ist hier OpenStreetMapaddMarkers(~X, ~Y, popup =~as.character(Typ), label =~as.character(Typ))
Cluster
Besonders wenn es sich um viele Marker bei niedriger Zoomstufe handelt, ist die Darstellung der einzelnen Icons manchmal unübersichtlich. Teilweise gibt es auch Darstellungsprobleme wenn mehrere Marker mit der gleichen Koordinate hinterlegt sind. In solchen Fällen bietet sich eine Clusterdarstellung an.
Sollen die drei verschiedenen Typen klarer voneinander unterscheidbar sein, so kann das über individuell gestaltete Icons erfolgen. Mit AwesomeIcons steht eine Vielzahl an Icons zur Verfügung. Eine Übersicht der Icons findet sich hier: fontawesome.
Wir nehmen an dass es sich bei den Typen A - C um verschiedenen Fahrzeugtypen handelt. Mögliche Icons könnten also so gestaltet werden:
mit dem Package leaflet.minicharts lassen sich Verteilungen auf die Landkarte plotten. Dazu benötigen wir geeignete Daten zu den Ländern. In diesem Fall wird die Anzahl der Typen A - C je Land gezäht.